/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package ec.edu.espe.ccsoft.mantenimiento.servicios;

import ec.edu.espe.ccsoft.mantenimiento.dao.UnidadFacade;
import ec.edu.espe.ccsoft.mantenimiento.modelos.Unidad;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.ejb.LocalBean;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;

/**
 *
 * @author misahaelfernandez
 */
@Stateless
@LocalBean
public class UnidadServicio {

    @EJB
    private UnidadFacade unidadFacade;
    
    public Unidad obtenerPorNumeroBus(Integer numeroBus){
        return this.unidadFacade.findUnidadByBusNumber(numeroBus);
    }
    
    public List<Unidad> obtenerTodasActivas(){
        return this.unidadFacade.findAllByEstate(Boolean.TRUE);
    }
    
    public List<Unidad> obtenerTodasInactivas(){
        return this.unidadFacade.findAllByEstate(Boolean.FALSE);
    }
    
    public List<Unidad> obtenerTodas(){
        return this.unidadFacade.findAll();
    }
    
    @TransactionAttribute(TransactionAttributeType.REQUIRED)
    public void crear(Unidad unidad) {
        this.unidadFacade.create(unidad);
    }

    @TransactionAttribute(TransactionAttributeType.REQUIRED)
    public void actualizar(Unidad unidad) {
        this.unidadFacade.edit(unidad);
    }

    @TransactionAttribute(TransactionAttributeType.REQUIRED)
    public void eliminar(Unidad unidad) {
        Unidad unidadTmp = this.unidadFacade.find(unidad.getCodUnidad());
        if (unidadTmp != null) {
            this.unidadFacade.remove(unidadTmp);
        }
    }
}
